Emma in Action: Deklarative Datenflüsse für Skalierbare Datenanalyse
نویسندگان
چکیده
Schnittstellen zur Programmierung paralleler DatenĆüsse, die auf Funktionen höherer Ordnung (wie map und reduce) basieren, sind in den letzten zehn Jahren durch Systeme wie Apache Hadoop, Apache Flink und Apache Spark populär geworden. Im Gegensatz zu SQL werden solche Programmierschnittstellen in Form eingebetteter DomänenspeziĄscher Sprachen (eDSLs) realisiert. Im Kern jeder eDSL steht ein dedizierter Typ, der verteilte Datenmengen repräsentiert und Berechnungen auf ihnen ermöglicht, wie z.B. DataSet in Flink oder RDD in Spark. Aufgrund der Integration von eDSLs in einer generischen Programmierumgebung (Java, Scala, oder Python) stellen sie eine Ćexiblere Alternative zu klassischen Ansätzen (z.B. SQL) dar, um gängige Aufgaben (z.B. ETL-Prozesse) in einer skalierbaren, Cloud-basierten Infrastruktur zu implementieren. Im Laufe der Zeit hat sich jedoch die Anzahl der Operatoren auf den Schnittstellen vergrößert, um Eizienz und Skalierbarkeit zu gewährleisten. Die Schnittstellen werden somit selbst immer komplexer Ű Ausführungsaspekte wie Join-Reihenfolge, Partitionierung, Caching von Zwischenergebnissen und Verwendung partieller Aggregate, werden dabei nicht vom System, sondern vom Programmierer entschieden. Diese Tendenz hat zwei Nachteile Ű (1) Programmierer müssen das zugrunde liegende Ausführungsmodell gut beherrschen, um die jeweils passenden Operatoren auswählen zu können, und (2) der erzeugte Quelltext beinhaltet neben den logischen auch physische Aspekte der beschriebenen Berechnung. Dies erhöht die Komplexität von Datenanalyseprogrammen und verringert deren Wartbarkeit und Portabilität. In dieser Demonstration zeigen wir, wie sich die obengennanten Probleme durch einen besseren Einbettungsansatz vermeiden lassen. Die Grundidee hierbei ist, die Einbettung nicht durch Typen, sondern durch sog.Quasi-Quotes zu realisieren. Diese ermöglichen es, Quelltext-Fragmente in derHostSprache auszuzeichnen. Sprachkonstrukte, die durch Typen alleine nicht überladen werden können (wie z.B. KontrollĆuss, anonyme Funktionen, for-comprehensions), werden in der eDSL somit reĆektiert und in eine strukturell reichere Zwischendarstellung übertragen. Auf dieser Darstellung lassen sich dementsprechend Programmtransformationen deĄnieren, welche die erforderlichen physischen Operatoren und Optimierungen automatisch einführen. Wir zeigen die oben beschriebenen Ideen in Emma, einer in Scala eingebetteten und auf QuasiQuotes basierenden DSL. Zur Modellierung verteilter Datenmengen verwenden wir eine algebraische Formalisierung, welche Daten als Multimengen in der sog. Union Sicht realisiert Ű d.h. als Instanzen des polymorphen algebraischen Datentypen Bag A. Parallele Berechnungen lassen sich dabei mit der Klasse von Programmen, die sich über strukturelle Rekursion deĄnieren lassen, identiĄzieren. Anhand von Beispielalgorithmen wie KMeans und NaiveBayes zeigen wir, wie durch Emma komplexe Datenanalyseprogramme ohne besondere Kenntnisse von APIs, lediglich in klassischem Scala, programmiert werden und dann automatisch optimiert und auf massiv-parallelen Big Data Frameworks wie Apache Flink und Apache Spark zur Ausführung gebracht werden. Auf diese Weise leistet Emma einen Beitrag zur deklarativen SpeziĄkation von Datenanalsyeprogrammen, die im NoSQL-Kontext verloren gegangen war. 1 TU Berlin, FG DIMA, Einsteinufer 17. 10587 Berlin, [email protected]
منابع مشابه
Ansätze zum Ähnlichkeitsabgleich von deklarativen Geschäftsprozessmodellen
Prozesse in Organisationen lassen sich grundsätzlich in zwei Klassen unterteilen: Strikte Routineprozesse und ̄exible Prozesse mit einem sich dynamisch entwickelnden, variablen Kontroll ̄uss. Aufgrund der unterschiedlichen Natur strikter und ̄exibler Prozesse entstanden auch zwei verschiedene Klassen von Prozessmodellierungssprachen: imperative und deklarative. Während imperative Modelle die exa...
متن کاملDeklarative Modellierung und effiziente Optimierung - quo vadis? Ausgewählte Herausforderungen und Potenziale für die nächsten Jahre - zur Diskussion
In diesem Paper werden die für die Brainstorming-Session des Workshops MOC 2015 angenommenen und weiterführenden Themen aufgeführt und motiviert. Die diskutierenden Experten argumentieren, dass die Forschungsarbeit im Kontext der thematisierten – sich teilweise überschneidenden und ergänzenden – Gebiete erhebliches Potenzial für die Beherrschung großer realer Herausforderungen besitzt.
متن کاملSpezifikation von Objektsystemen
Die konzeptionelle Modeliierung des Weltausschnitts, der durch ein Informationssystem dargestellt werden soll, ist die entscheidende Phase beim Systementwurf, da das konzeptionelle Modell die Grundlage der Implementierung ist. Eine Sprache zur konzeptionellen Modeliierung sollte daher auf einer soliden formalen Grundlage basieren, um einerseits die systematische Konstruktion einer Implementieru...
متن کاملLeichtere Datenanalyse zur Optimierung der Lehre am Beispiel Moodle
Lernraumsysteme (LMS) werden an Schulen, Hochschulen sowie in Firmen eingesetzt. Berichte und Statistiken gehören nicht zur ihren Kernfunktionalitäten und sind folglich unzureichend vorhanden. Für Lehrende, Bildungsinstitutionen oder Bildungsanbieter sind Informationen über die Nutzungsart und -weise der angebotenen Lehrveranstaltungen aber von entscheidender Bedeutung. Ziel unserer Arbeit ist ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017